package yanghuiTriangle;

import java.util.ArrayList;
import java.util.List;

public class Test {
    //拿接口来接收对象：好处是可以发生向上转型。拿接口来接收，可以做到接收不同的对象，只要实现了这个接口的都可以。
    //坏处是，只能调用父类自己的方法
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> lists = new ArrayList<>();
        List<Integer> row = new ArrayList<>();//第一行
        row.add(1);
        lists.add(row);
        for (int i = 1; i < numRows; i++) {
            List<Integer> preRow = lists.get(i-1);//前一行
            List<Integer> curRow = new ArrayList<>();//新一行
            curRow.add(1);//第一个1
            //中间数
            for (int j = 1; j < i; j++) {
                int x = preRow.get(j)+preRow.get(j-1);
                curRow.add(x);
            }
            curRow.add(1);//最后一个1
            lists.add(curRow);//添加新一行
        }
        return lists;
    }

}
